// ============================================================================
//     _____ __  _      __            _       __      ____
//    / ___// /_(_)____/ /_____  ____| |     / /___ _/ / /
//    \__ \/ __/ / ___/ //_/ _ \/ ___/ | /| / / __ `/ / /
//   ___/ / /_/ / /__/ ,< /  __/ /   | |/ |/ / /_/ / / /
//  /____/\__/_/\___/_/|_|\___/_/    |__/|__/\__,_/_/_/
//
// Copyright (C) by daxnet
// https://gitee.com/daxnet/stickerwall
// MIT License
// ============================================================================

using System.ComponentModel.DataAnnotations;

namespace Stickerwall.Common.Models;

/// <summary>
/// Represents a Sticker entity model.
/// </summary>
public class Sticker(string userId, string title, string content)
{
    private Sticker()
        : this(string.Empty, string.Empty, string.Empty)
    {

    }

    #region Public Properties

    /// <summary>
    /// Gets or sets the content of the sticker.
    /// </summary>
    public string Content { get; set; } = content;

    /// <summary>
    /// Gets or sets the date on which the sticker was created.
    /// </summary>
    public DateTime DateCreated { get; set; }

    /// <summary>
    /// Gets or sets the date on which the sticker was modified.
    /// </summary>
    public DateTime? DateModified { get; set; }

    /// <summary>
    /// Gets or sets the Id of the sticker.
    /// </summary>
    public int Id { get; set; }

    /// <summary>
    /// Gets or sets the title of the sticker.
    /// </summary>
    public string Title { get; set; } = title;

    /// <summary>
    /// Gets or sets the Id of the user who owns the current sticker.
    /// </summary>
    public string UserId { get; set; } = userId;

    #endregion Public Properties

    #region Public Methods

    /// <inheritdoc />
    public override string? ToString() => Content;

    #endregion Public Methods

}